{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Trade with ChatGPT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append(\"D:\\python_project\\FinRL-Meta\\FinRL-Meta\")  # Your FinRL-Meta dir\n",
    "import pandas as pd\n",
    "from meta.data_processors.akshare import Akshare\n",
    "import datetime\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Read data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CODE</th>\n",
       "      <th>NAME</th>\n",
       "      <th>DATE</th>\n",
       "      <th>CREATED_DATE</th>\n",
       "      <th>text_a</th>\n",
       "      <th>DESCRIPTION</th>\n",
       "      <th>READ</th>\n",
       "      <th>MARKET</th>\n",
       "      <th>CHANGE</th>\n",
       "      <th>FIRST_DAY</th>\n",
       "      <th>...</th>\n",
       "      <th>A0_mask</th>\n",
       "      <th>A1_mask</th>\n",
       "      <th>AV_num</th>\n",
       "      <th>trade_date</th>\n",
       "      <th>open_close_chg</th>\n",
       "      <th>co_label</th>\n",
       "      <th>cc_label</th>\n",
       "      <th>stock_factors</th>\n",
       "      <th>label</th>\n",
       "      <th>chatgpt_res</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600519</td>\n",
       "      <td>贵州茅台</td>\n",
       "      <td>2021-01-07 18:24:00</td>\n",
       "      <td>2021-01-07 18:23:00</td>\n",
       "      <td>贵州茅台公告，董事会于2021年1月6日收到公司董事王焱的书面辞职报告，王焱因工作变动，申请...</td>\n",
       "      <td>贵州茅台公告，董事会于2021年1月6日收到公司董事王焱的书面辞职报告，王焱因工作变动，申请...</td>\n",
       "      <td>5034011.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000935</td>\n",
       "      <td>2021-01-07</td>\n",
       "      <td>...</td>\n",
       "      <td>[[0. 0. 0. ... 0. 0. 0.]\\n [0. 0. 0. ... 0. 0....</td>\n",
       "      <td>[[0. 0. 0. ... 0. 0. 0.]\\n [0. 0. 0. ... 0. 0....</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2021-01-07</td>\n",
       "      <td>0.247727</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>[39.43367824665831, 39.12671101868472, 39.9102...</td>\n",
       "      <td>1</td>\n",
       "      <td>公司高管变动通常会对公司的经营和股票价格产生一定的影响，但具体影响的程度和方向需要综合考虑多...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1 rows × 42 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     CODE  NAME                 DATE         CREATED_DATE  \\\n",
       "0  600519  贵州茅台  2021-01-07 18:24:00  2021-01-07 18:23:00   \n",
       "\n",
       "                                              text_a  \\\n",
       "0  贵州茅台公告，董事会于2021年1月6日收到公司董事王焱的书面辞职报告，王焱因工作变动，申请...   \n",
       "\n",
       "                                         DESCRIPTION       READ  MARKET  \\\n",
       "0  贵州茅台公告，董事会于2021年1月6日收到公司董事王焱的书面辞职报告，王焱因工作变动，申请...  5034011.0     1.0   \n",
       "\n",
       "     CHANGE   FIRST_DAY  ...  \\\n",
       "0  0.000935  2021-01-07  ...   \n",
       "\n",
       "                                             A0_mask  \\\n",
       "0  [[0. 0. 0. ... 0. 0. 0.]\\n [0. 0. 0. ... 0. 0....   \n",
       "\n",
       "                                             A1_mask  AV_num  trade_date  \\\n",
       "0  [[0. 0. 0. ... 0. 0. 0.]\\n [0. 0. 0. ... 0. 0....     3.0  2021-01-07   \n",
       "\n",
       "  open_close_chg  co_label  cc_label  \\\n",
       "0       0.247727       4.0       4.0   \n",
       "\n",
       "                                       stock_factors  label  \\\n",
       "0  [39.43367824665831, 39.12671101868472, 39.9102...      1   \n",
       "\n",
       "                                         chatgpt_res  \n",
       "0  公司高管变动通常会对公司的经营和股票价格产生一定的影响，但具体影响的程度和方向需要综合考虑多...  \n",
       "\n",
       "[1 rows x 42 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(\"./data/maotai.csv\")\n",
    "df.head(1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Generate Signal from ChatGPT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def generate_signal_from_chatgpt(x):\n",
    "    chatgpt_res = x.chatgpt_res\n",
    "    if \"持有不动\" in chatgpt_res:\n",
    "        signal = 0\n",
    "    if \"小幅加仓\" in chatgpt_res:\n",
    "        signal = 1\n",
    "    elif \"小幅减仓\" in chatgpt_res:\n",
    "        signal = -1\n",
    "    if \"大幅加仓\" in chatgpt_res:\n",
    "        signal = 2\n",
    "    elif \"大幅减仓\" in chatgpt_res:\n",
    "        signal = -2\n",
    "    return signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"signal\"] = df.apply(generate_signal_from_chatgpt,axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    -1\n",
       "1     0\n",
       "2     1\n",
       "3     0\n",
       "4     0\n",
       "5     0\n",
       "6     1\n",
       "7     0\n",
       "8     0\n",
       "9     0\n",
       "10   -1\n",
       "11    1\n",
       "12   -1\n",
       "13    0\n",
       "14    1\n",
       "Name: signal, dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"signal\"]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Generate Signal by yourself\n",
    "Here the result of ChatGPT is just a suggestion, you need to make trading signal after considering both news and the result of ChatGPT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def generate_signal_from_chatgpt_by_yourself(x):\n",
    "    chatgpt_res = x.chatgpt_res\n",
    "    news = x.text_a\n",
    "    signal = input(\n",
    "        f'- {news}\\n - {chatgpt_res}\\n (Please input 1 for buy or 0 for hold or -1 for sell)'\n",
    "        )\n",
    "    return int(signal)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"signal_by_yourself\"] = df.apply(generate_signal_from_chatgpt_by_yourself,axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    -1\n",
       "1     1\n",
       "2     1\n",
       "3     0\n",
       "4     1\n",
       "5     0\n",
       "6     1\n",
       "7     1\n",
       "8     1\n",
       "9     1\n",
       "10   -1\n",
       "11    1\n",
       "12    1\n",
       "13    0\n",
       "14    1\n",
       "Name: signal_by_yourself, dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"signal_by_yourself\"]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Fetching price data from FinRL-Meta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.DATE = pd.to_datetime(df.DATE)\n",
    "df.DATE = df.DATE.dt.date.astype(str)\n",
    "max_date = datetime.datetime.strptime(df.DATE.max(),\"%Y-%m-%d\")\n",
    "max_date += datetime.timedelta(days=10)\n",
    "max_date = max_date.strftime(\"%Y-%m-%d\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "time_interval = \"daily\"\n",
    "start_date= df.DATE.min()\n",
    "end_date = max_date\n",
    "adjust=\"\"\n",
    "\n",
    "ticket_list=[f'{df.iloc[0].CODE}.SH', ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1/1 [00:00<00:00,  3.00it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Download complete! Dataset saved to ./data/dataset.csv. \n",
      "Shape of DataFrame: (196, 8)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(196, 8)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "as_processor = Akshare(\"akshare\",start_date=start_date,end_date=end_date,time_interval=time_interval)\n",
    "as_processor.download_data(ticket_list)\n",
    "as_processor.dataframe.shape"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Trading\n",
    "Since we only have the news for several days here, we only calculated the dicision results made by Chatgpt or by combining Chatgpt and your own opinion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tic</th>\n",
       "      <th>time</th>\n",
       "      <th>open</th>\n",
       "      <th>high</th>\n",
       "      <th>low</th>\n",
       "      <th>close</th>\n",
       "      <th>volume</th>\n",
       "      <th>day</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600519.SH</td>\n",
       "      <td>2021-01-07</td>\n",
       "      <td>2097.0</td>\n",
       "      <td>2140.0</td>\n",
       "      <td>2075.0</td>\n",
       "      <td>2140.0</td>\n",
       "      <td>37931</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         tic        time    open    high     low   close  volume  day\n",
       "0  600519.SH  2021-01-07  2097.0  2140.0  2075.0  2140.0   37931    3"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "price_df = as_processor.dataframe\n",
    "price_df = price_df.reset_index(drop=True)\n",
    "price_df.head(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal_reward(x,by_yourself = False, hold = False):\n",
    "    # get price\n",
    "    this_date = x.DATE\n",
    "    this_price = price_df[price_df.time == this_date]\n",
    "    \n",
    "    while this_price.shape[0] == 0:\n",
    "        this_date = datetime.datetime.strptime(this_date,\"%Y-%m-%d\")\n",
    "        this_date += datetime.timedelta(days=1)\n",
    "        this_date = this_date.strftime(\"%Y-%m-%d\")\n",
    "        this_price = price_df[price_df.time == this_date]\n",
    "    \n",
    "    next_price = price_df.iloc[this_price.index+1]\n",
    "    this_close = this_price.close.item()\n",
    "    next_open = next_price.open.item()\n",
    "    next_close = next_price.close.item() # T+1\n",
    "    \n",
    "    if hold:\n",
    "        signal = 1\n",
    "    else:\n",
    "        if by_yourself:\n",
    "            signal = x.signal_by_yourself\n",
    "        else:\n",
    "            signal = x.signal\n",
    "\n",
    "    reward = signal * (next_close-this_close)/this_close\n",
    "    return reward\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "df[\"reward\"] = df.apply(lambda x:cal_reward(x),axis = 1)\n",
    "df[\"reward_by_yourself\"] = df.apply(lambda x:cal_reward(x,by_yourself = True),axis = 1)\n",
    "df[\"reward_hold\"] = df.apply(lambda x:cal_reward(x,hold = True),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "reward_list = (df[\"reward\"] +1 ).cumprod().to_list()\n",
    "reward_hold_list = (df[\"reward_hold\"] +1 ).cumprod().to_list()\n",
    "reward_yourself_list = (df[\"reward_by_yourself\"] +1 ).cumprod().to_list()\n",
    "reward_list = [i/reward_list[0] for i in reward_list]\n",
    "reward_hold_list = [i/reward_hold_list[0] for i in reward_hold_list]\n",
    "reward_yourself_list = [i/reward_yourself_list[0] for i in reward_yourself_list]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AnAN8NcjLaayspLU1FQFQHJYjDGkpqZqBJmIiIiIiIhIC1oNgay1S4GDLewvtdZa38M4wDbXti0UAMmR0PtGREREREREpGXtsjC0MeZcY8xm4E2c0UBdVlhYGBMmTGDMmDGcddZZFBYWBqWOWbNmsWrVqkbbBw0axIEDB474uM888wxjxoxh7NixTJw4kQULFrR4vubs2LGD5557rt62lStXMmvWLIYPH86kSZM444wz+OKLLwC45557SE9P9/ftf//7X+6//34mTJjAhAkT/P0+YcIEHn744SN+fSIiIiIiIiLStHZZGNpa+yrwqjFmJs76QKc01c4Ycx1wHUBWVlZ7nLrdxcTEsHbtWgCuvPJKHnvsMe68884OPafb7SY8vOPX6H777bd56KGHeO+99xgwYABVVVU888wzR3Ss2hDokksuAWDfvn1ccMEFPPfcc5xwwgkALF++nK1btzJ27FgAbrnlFn7yk5+wadMmZsyYwf79+/19Gx8f7+93EREREREREWl/7Zo8WGuXGmOGGGPSrLWNhqtYa58AngCYMmXKUU0b6wzTp09n/fr1AGzdupXvf//75OfnExsby5NPPsnw4cMZNmwY27Zto6ioiNTUVBYtWsTMmTOZOXMmTz31FIcOHeLmm2+msrKSmJgY/v73v3Psscfy9NNP88orr1BaWorH4+Gdd97h6quvZt26dYwYMYKKiopm63rggQd4++23iYmJ4bnnnqNv376MGzeOr7/+moiICIqLixk/frz/ca1f//rXLFiwgAEDBgAQFRXFd7/7Xf/+F198kRtuuIHCwkKeeuopZsyYwY4dO7j88sspKysD4NFHH+WEE07g9ttvZ9OmTUyYMIErr7ySgwcPcuWVV/oDIICTTjqpyfpHjhxJeHg4Bw4coE+fPkf+DRIRERERkdBXWQyb3wBPdbAr6V5iekGvQdBrMEQnBrsa6SKOOgQyxgwDtlprrTFmEhAFFBx1ZUHm8Xj48MMP+c53vgPAddddx+OPP87w4cP59NNPueGGG/joo4849thj2bhxI9u3b2fSpEksW7aM448/npycHIYPH05xcTHLli0jPDycDz74gJ/97Ge8/PLLAKxZs4b169eTkpLC73//e2JjY9m0aRPr169n0qRJzdaWlJTEF198wTPPPMMPf/hD3njjDWbNmsWbb77J/PnzeeGFFzjvvPMaXS59w4YNTJ48udnjut1uVq5cyVtvvcW9997LBx98QJ8+fXj//feJjo5my5YtXHzxxaxatYrf/OY3LFiwgDfeeAOA8847jyuvvLJNffvpp5/icrno3bt3m9qLiIiIiEgXlf8VvHAJFGQHu5LuLTa1LhBKGVz/fnw/cLXLSjDSDbTlEvHPA7OANGNMLvALIALAWvs48C3gCmNMDVABXBiwUPQRu/f1L9m4u/hoD1PPqAGJ/OKs0S22qaioYMKECeTl5TFy5Ejmzp1LaWkpK1as4Pzzz/e3q6qqAmDGjBksXbqU7du3c8cdd/Dkk09y8sknM3XqVACKioq48sor2bJlC8YYampq/MeYO3cuKSkpACxdupSbbroJgHHjxjFu3Lhma7z44ov9X2+55RYArr32Wh544AHmz5/P3//+d5588snD7R7OO+88ACZPnsyOHTsAqKmp4cYbb2Tt2rWEhYXx9ddft+lYxx9/PMXFxcybN48//vGPAPzhD3/gX//6FwkJCSxcuFCLOYuIiIiIdGeb3oBXvwcR0XDZK9BnZLAr6j6shfIDcGgHHNwOh7Y793M/gy9fBeupaxseDckDnWAoZbATDtXeTx7ofH+kx2g1BLLWXtzK/t8Cv223ioKsdk2g8vJyTj31VB577DGuuuoqkpOTm1yzZubMmfz5z39m9+7d3HfffTz44IMsXryYGTNmAHDXXXcxe/ZsXn31VXbs2MGsWbP8z42LizuiGgPDk9r7J554Ijt27GDx4sV4PB7GjBnT6HmjR49m9erVzJkzp8njRkVFAc7i2G63G3CCm759+7Ju3Tq8Xi/R0U3/gBg9ejRr1qzhnHPOAZzRPi+99JJ/pBDUrQkkIiIiIiLdmNcLi38NSx+AAZPgwn9BUnqwq+p+ktKh//jG2z01UJRTPxw66Pu6YznUlNVvnzCgcThUez82BfSP991Kx69GfIRaG7HT0WJjY3n44YeZP38+N9xwA4MHD+bFF1/k/PPPx1rL+vXrGT9+PMcddxyXX345Q4YMITo6mgkTJvCXv/zFH34UFRWRnu78wHv66aebPd/MmTN57rnnmDNnDhs2bPCvRdSUhQsXcvvtt7Nw4UKmT5/u337FFVdwySWXcNdddzX5vDvuuINbb72VN998k379+lFdXc0zzzzDtdde2+y5ioqKyMjIwOVy8Y9//AOPx0mUExISKCkp8bf7/ve/z/HHH8+pp57qXxeovLy82eOKiIiIiEg3VFEIr1wHW96FCZfBGb/TSJPOFhYBKUOcW0PWQtmBBuGQ7372B1C6t377qETf1LJBjYOixAwIC9lIQZqh71gLJk6cyLhx43j++ed59tlnuf766/nlL39JTU0NF110EePHjycqKorMzEymTZsGONPDnn/+ef8VsX76059y5ZVX8stf/pIzzjij2XNdf/31XH311YwcOZKRI0e2uHbPoUOHGDduHFFRUTz//PP+7Zdeeik///nP/dPFGjr99NPZt28fp5xyCtZajDFcc801LfbBDTfcwLe+9S2eeeYZTjvtNP/opXHjxhEWFsb48eO56qqruOWWW1i4cCG33XYbeXl59OnTh7S0NO6+++4Wjy8iIiIiIt3E/s3O+j+FO+H0BTD1Wo0iCTXGQHxv55Z5XOP91eXO96/hKKL9G+Grt8Fbt7wJrnBIymx+FFFUfCe9KDkcph2W7zkiU6ZMsatWraq3bdOmTYwcqXmiR+qll17itdde45///GewSwkKvX9ERERERIJk0+u+9X9i4YJnYOD01p8jXYvXA8W7mx5FdHA7VBbWbx/Xu+lwKGUwxPdVQNiBjDGrrbVTmtqnkUDdxA9+8APefvtt3nrrrWCXIiIiIiIiPYXX41v/50FInwwX/FPr/3RXrjBIznRug2c23l9xqOlwaNcn8MWLQMAAlPCYpsOhXoOd44dHdcpL6okUAnUTjzzySLBLEBERERGRnqSiEF75Lmx5DyZeBqdr/Z8eLaaXcxswsfE+dzUU7mq8UPWh7bBtMdQEridrICmjwVpEg+oueR/TqxNeTPelEEhEREREREQOz/5NvvV/djmLP0/5jqb3SPPCIyFtmHNryFoo3e8EQg1HEX39DpTl128fnVQXCAWGQ70GQWK6M2JJmqUQSERERERERNpu42vw6vUQGQdXvqH1f+ToGAMJfZ1b1rTG+6tK60YNBY4i2rPOWYvK665rGxYJyVmNw6HaKWeRsZ3xikKaQiARERERERFpndcDi+6HZb+D9Clw4T8hcUCwq5LuLioe+o1xbg153FCc1/QoopyVUFVcv3183+ZHEcX17hGj2RQCiYiIiIiISMsqDsHL34Xs92HSFc4l4LV4rwRbWDj0Gujchsyqv89a533rD4e2w8EdTki0fSmse75+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Nk8NFO6qP2WrIOAS69i6trGpTsAzZHbd5dVThjpTuKLig/YSRI6Wpn+JSFsoBBIRERGR0Of1QFFu49E8BdlwaCdYT13bqCRnBE/W8ZBySd3l1VOGQkxy0F6CSEcJnP51xagr+OGkH2r6l4g0SSGQiIiIiIQGa50pWg2vuHXQt16Pp7qubUSsE/T0Gwejz627vHrqUGe0jy6xLj2Epn+JyOFQCCQiIiIinauyCPZvajrsqSmvaxcWBSmDnXBn+Dwn4KmdvpXQT0GP9GjVnmoWrFrA85uf1/QvEWkzhUAiIiIi0nmshUcmQ1m+89gVDskDnXBn8Azf5dV9I3oS03WJdZEm5BTn8JOlmv4lIodPIZCIiIiIdK6yfBh/Ccz8CSRn6RLrIofhvR3v8YsVv9D0LxE5IgqBRERERKTz9RrojPYRkTYJnP41Lm0cD5z8gKZ/ichhUwgkIiIiIiISwjT9S0Tai0IgERERERGREFU7/ctlXDw8+2FmZ80Odkki0oUpBBIREREREQkxDad/PXjygwyIHxDsskSki1MIJCIiIiIiEkICp39dOepKbp50s6Z/iUi7UAgkIiIiIiISIjT9S0Q6kkIgERERERGRINP0LxHpDAqBREREREREgiinOIcfL/kxmw5u0vQvEelQCoFERERERESCRNO/RKQzKQQSERERERHpZNWeah787EFe+OoFTf8SkU6jEEhERERERKQTafqXiASLQiAREREREZFO8u6Od7lnxT2a/iUiQaEQSEREREREpINVeapY8NkCTf8SkaBSCCQiIiIiItKBNP1LREKFQiAREREREZEOEjj965E5jzArc1awSxKRHkwhkIiIiIiISDurN/2r9zgenKnpXyISfAqBRERERERE2lHg9K+rRl/FTZNuIsKl6V8iEnwKgURERESkUz2YkkzhgRVkrnucrIQsBiYOJDMxk8TIxGCXJnLUNP1LREKZQiARERER6TTWWp5JSiS6fBeVax+rty85KpmsxCyyEpxbZmImAxMGkpWYRVJUUpAqFmmbhtO/FsxcQP/4/sEuS0SkHoVAIiIiItLprkkcxdVn/o3cklx2luwkpziHXSW72FWyi9X7VvPmtjexWH/7xMhEJxxKzKoLinxfk6OSMcYE8dVIT7ereBc/WfITTf8SkZCnEEhEREREgiI6PJphvYYxrNewRvuqPFXkleSxs3gnu0p2kVOSw67iXazLX8c7O97Ba73+tgkRCf5RQ5mJmXVTzBIySYlOUUAkHerdHe/yixW/IMyEafqXiIQ8hUAiIiIiEnKiwqIYkjyEIclDGu2r9lSTV5rHrmJn5NCuYick+uLAF7y78916AVFcRFy9UUOZCZkMTHSmmKVGpyogkiNW5aniwc8eZOFXCzX9S0S6DIVAIiIiItKlRIZFMjhpMIOTBjfaV+OpYXfZ7noB0a6SXWwq2MQHOz/AYz3+tjHhMfUCoqzEupCod0xvBUTSLE3/EpGuSiGQiIiIiHQbEWERDEwcyMDEgY321Xhr2Fu6l10lu9hZvNOZYlayiy2HtrAoZxFur9vfNiY8hoyEjHpTzGqDoj6xfXAZV2e+LAkh7+x4h3tW3KPpXyLSJSkEEhEREZEeIcIVQWZiJpmJmZyYfmK9fW6vm71le+uNHsopzmFb0TaW5C6hxlvjbxsVFkVmQqZ/1FBmQiZZiVkMTBhI37i+Coi6KU3/EpHuQCGQiIiIiPR44a5wMhIyyEjI4IQBJ9Tb5/F62Fe+ry4gqg2JSnL4OO9jqr3V/raRrkgyEjLqr0PkG0nUP64/Ya6wzn5p0g4Cp39dPfpqfjDpB5r+JSJdkkIgEREREZEWhLnCGBA/gAHxA5jWf1q9fV7rZX/5/kZrEO0q2cX/9vyPSk+lv224K5yM+IxGl7jPSsiif3x/wl36aB6Kaqd/hbvCeXTOo5yceXKwSxIROWL6TSMiIiIicoRcxkW/uH70i+vHcf2Pq7fPa73kl+f7Rw351yEq3sVnez+jwl3hbxtuwklPSHemljVYrHpA/ACNOgmCwOlf43uP58GZD2r6l4h0eQqBRERERKRz7N8MG14OdhWdxmVc9I3rS9+4vkztN7XePmstByoO1B895LvU/Zp9ayh3l/vbhhlnJFLDS9xnJmSSEZ9BRFj3DYistXitF+v7Hxa8eLHWt8VagHptGm3ztfVva/g4sI3v+MVVxfy///0/Tf8SkW5HIZCIiIiIdJyCrfDlK7DhVdj/JWBgcCb0HhHsyoLKGEPv2N70ju3N5L6T6+2z1lJQWeAfNRR4JbN1+esorSn1t3UZF/3j+tM3ti/GmHrhSGAo0ujx4bZp7jlNfIXG4UqzbQKO1zDgCbakqCRN/xKRbkchkIiIiIi0r8Ic+PJVZ9TPnrXOtsxp8M0HYeTZ8OpciOsd1BJDmTGGtJg00mLSmNhnYr191loOVR3yjxqqvdx9fnk+xhjnhsH5v8FlXE0+bnKbMQBtauPfVnu+wOe1sU3t8V3Ub2NM4zoD2zRVZ+C+FtsY0+JzAuuc2m8qfWL7dOS3WkSk0ykEEhEREZGjV7IXNr7mBD85nzrbBkyEeb+E0edCUoazzQZ/hEdXZowhJTqFlOgUJvSZEOxyRESki2k1BDLG/A04E9hvrR3TxP4RwN+BScCd1toF7V6liIiIiISesgLY9BpseAV2LAcs9B0Dc+6CMedBypBgVygiIiIB2jIS6GngUeCZZvYfBG4C5rdPSSIiIiISsioKYfObzjo/WxeB9UDqcDj5Nif46X1ssCsUERGRZrQaAllrlxpjBrWwfz+w3xhzRnsWJiIiIiIhoqoUvn7HmeqV/QF4qiE5C068CUafB/3Ggm8NFhEREQldWhNIRERERBqrqYAt7zvBz9fvgrsCEgbA1O/CmG9B+iQFPyIiIl1Mp4ZAxpjrgOsAsrKyOvPUIiIiItIadzVs/ciZ6rX5Taguda7iNfFSJ/jJnAYuV7CrFBERkSPUqSGQtfYJ4AmAKVOm6NIQIiIiIsHmccOOpc6In02vQ2URRCc76/uMPg8GzYAwDR4XERHpDvQbXURERKSn8Xph1ydO8LPxNSg/AJEJMOIMZ8TPkFkQHhnsKkVERKSdteUS8c8Ds4A0Y0wu8AsgAsBa+7gxph+wCkgEvMaYHwKjrLXFHVW0iIiIiBwmayF3lTPV68tXoWQPhMfAsac5wc+wuRARHewqRUREpAO15epgF7eyfy+Q0W4ViYiIiEj7sBb2rndG/Hz5KhTugrBIGD4PRp8Lx5wGUfHBrlJEREQ6iaaDiYiIiHQ3+zf7gp9XoCAbXOEwZDbM+hmMOB2ik4JdoYiIiASBQiARERGR7qBgqxP6bHgF9m8E44JBJ8EJP4CRZ0NsSrArFBERkSBTCCQiIiLSVRXucqZ5bXgF9qx1tmVNh28+CKPOgYS+QS1PREREQotCIBEREZGupGQvfPkfZ9RPzqfOtgGTYN79MHo+JGmpRhEREWmaQiARERGRUFdWAJtec0b87FgOWOg7Br5xt7PAc8qQYFcoIiIiXYBCIBEREZFQVFEIm990FnjethisB1KHw8m3wZjzoPexwa7wiFR7q4NdgoiISI+lEEhE5HB5PWC9wa6iezEucIUFuwqR4Ksqha/edqZ6ZX8AnmpIHggn3gRjvuWM/jEm2FUetipPFSvyVvDezvdYnLMYgMSoxKDWJCIi0hMpBBIRaYvi3fDVW86/ym9fBt6aYFfU/RgXhEVCWBSERTj3wyN92yJ92wL3BdwPa9AuPCrgOQ2PGfi82mM29byGx4gElyvYvSTdUU0FbHnPGfHz9XvgroCEAXDcdTD6PEif1OWDn0U5iyirKSMxMpG5A+cyb9A8ThhwQrBLFBER6XEUAomINMVaOPA1bH7DCX7yVjvbU4Y6f5jF9gpufd2N1+sEa+4q8NQ4ox88gfdr9/nu1xTW3fdUg7va9zjg5nW3f52u8BZCpyYCp3pBVhPBUpuDrOaCqiae1wXDgh7JXQ1bP3KCn6/egupSiOsNEy9zRvxkHt8lQ8cqTxUf533sH/FTVlNGUlQSpw46lXkD53Fc/+OIcEUEu0wREZEeSyGQiEgtrxfyVtUFPwXZzvb0yc7iqyPOhLRj9Ed2V9FqsNRMeOQPlhq0Dby5G7QNPK67yrlVlfi2BYRXDY9pPe3/umuDqJhkiE2FuDSITXO+Bt6PTYO4VOdrVILe153B44YdS53gZ9PrUFkEMb2c9X3GfAsGngRhXe+jWW3w8+6Od1mSu6Re8HPqwFOZ2n+qgh8REZEQ0fU+aYiItCd3FWxf6gQ/X70Npfuc0R6DZ8K06+HY0yFxQLCrlCPhcoEryhk5E6q8nmYCqVbCoyYDqYDnuaug4hCUHYDyA5D/tfO1przpOsKifMFQg9Co3uPedduikxQatZXXA7s+ca7qtfE15/sQmQAjz3Smeg2Z5YwW62KqPFUsz1vOezve8wc/yVHJnDboNOYNnKfgR0REJEQpBBKRnqeyCLa874z22fI+VJdAZDwMn+uM9hl2ijOKQqSjucLAFQMRMZ1zvupyJ4Qoy3cuOV5+oC4o8j/Oh4KtUF7gTFFqsu6IgIDI9zWud/3RRYFhUnRyl5zadMSshdxVzoifjf+Bkj0QEQvHnOaM+Bl2CkREB7vKw1bprnRG/Ox8lyU5Syh3l9cFP4PmMbWfgh8REZFQpxBIRHqG4j0BCzsvdaYJxfV2pmGMONMZ+dMF/ygTOSyRsRCZBclZbWtfU9k4KCrLD9hW4Hzd/bmzr6qo6eOYsMahUcPRRv4QKc2ZItXVrhZnLexZ51zVa8OrULTLGWE1fK7zc+aY0yAyLthVHjZ/8OOb6lUb/Hxz8Dc5ddCpTO03lXCXPk6KiIh0FfqtLSLdV37gws6rnG0pQ5xpXiPOhIwpXe8PTZHOFBENSRnOrS3cVXXBUL3RRQfqvpYdgL1fOF8rC5s5kIHYlBaCogajjWJTg7eWzv5NzlSvDS/Dwa3OdNKhc2D2z2DE6c7UuS6m0l1Zb6pXubucXlG9OH3I6c5ULwU/IiIiXZZ+g4tI9+H1Olfx8i/svMXZPmASzLnLCX56H6u1TEQ6SniUs4ZWW9fR8tRA+cGAgCi/QYjkG22U/xXs/Nhpi236WNHJ9dctamoR7NoQKTb16NbhKdjqBD9fvgL7N4JxwaAZcOLNMPIsJ8DqYircFfWCnwp3hT/4OXXQqUzpO0XBj4iISDeg3+Yi0rW5q52r7Wx+Eza/BaV7nX+JHzQDjv8/Z2HnpPRgVykiTQmLgIS+zq0tvJ76oVG9aWn5dfcLtkLOp8596236WFFJDUYUpQaESE2MNirbD1++6oz42bPOOUbWdDh9AYw6B+L7tE+fdKKmgp+U6BTOHHIm8wbNU/AjIiLSDek3u4h0PZXFkB2wsHNVMUTE1S3sPHyuFnYW6Y5cYRDf27m1hdfrTDnzjzJqsJZR7ePCXc4owvIC8LpbPmb6ZJh3P4ye3/ZpciGkwl3BstxlvLfzPZbmLvUHP2cNOYt5g+Yxue9kBT8iIiLdmH7Li0jXULK3bmHnbUvqFnYePd+3sPPJWthZROpzuXxrC6VA72Nab2+tLzRqYi2j8CjnZ03K4A4vu73VBj/v7niXZXnL6gU/pw46lcl9JxOm9dFERER6BIVAEnIOHswmOWkQrmAt8imh48CWuvV9cj9ztvUaDNO+51vYeaoWdhaR9mOMc2WymF7AsGBXc1TKa8pZlreM93a8Vy/4OXvo2cwbOE/Bj4iISA+lv7IlJFRVFvHOil/zws532eByE+O1DCGcYVFpDE8azLA+4xmWNZM+vcdgXK5glysdxet1LjW9+XUn+DnwtbN9wESY83Pfws4jtLCziEgTymvKWZq3lPd2vMfyvOVUuCtIjU7l7KFnc+qgU5nUZ5KCHxERkR7OWNvMVTY62JQpU+yqVauCcm4JHXl5K1n4v9/wavHXFLoMgz2GM1LHU1hdRHb5XrI95RwIq/uDP9FrGWaiGB7dh2HJwxjWbzLDB80iKXlQ8F6EHB13NexY5oQ+X70FJXvAhMGgk5zQZ8TpXXLdDRGRzhAY/CzLXUalp5LU6FROGXiKgh8REZEeyhiz2lo7pal9Ggkknc7rcbNi9Z95YfNzLPWWYIDZ4UlcPPpKjptwbaORPocObiV71xKy964huzCb7Mp83qrIoaQqF/YthnW/o7fHMiwslmGx/Rne6xiG9T+OoQNPJrYLXq2lR6gshuwPfAs7v1e3sPOwbzjBzzHzfNMxQo/XetletB2A6PBoosKiiAmPISosSoupikinKK8pZ2nuUt7bWRf8pMWkMX/YfOYNmqfgR0RERJqlkUDSaYqKdvGf5b/k3/s+YVcYpHgt30oaxQXT76Bf/4mHdSzr9bJv/3qydy0je/86thRvJ7uqgG24qXTVjRxK98Dw8ASGx6czLHUUw9KnMThzJhFRce398qQ1JfvqFnbevgQ81c5ll4/9phP8DDkZImKCXWWTKt2VfLrnUxblLGJxzmIKKguabBfuCicmLIao8Ciiw6KJDo/2f40Kj6q3rzY4qtfGFyg1DJeiw+u3jwqLwmU0LVKkJ6kNft7d8S7L85b7g59TspwRPxP7TFTwIyIiIkDLI4EUAkmH2/TVa7yw5lHeqtxDpcswwUZw8eCzmDvtp+0exnjc1eTtXsmW3I/Jzt9AdslOsqsL2eHy4vatIxNuLQO9LoZFJjMsIYvhaWMYlnEiGenHExYe2a719HgFW2HT6wELO1voNcg3zetMyDwuZBd2LqgoYGnuUhblLOKT3Z9Q6akkLiKOk9JP4sQBJxITHkOlp5JKt+/mu1/lqaLCXUGlp5IqdxUVngqq3FX12gTuc7d2OepmBAZC9cKi5kKoFkKllkKoCFcERmswiQRFeU05S3KX+Bd3rvJU0TumN6cMPIV5A+cp+BEREZEmKQSSTlddVcL7nzzI89vfYJ2rhmiv5YzoAVw06UZGHHt2p9dTU1XGjpxlbMn7hOyCTWwpzSXbXUJuwGfnKN9i1MOjUhiWOJjhfSYwLGsGffuM02LUbeX1wp7PndBn85uQv9nZ3n88jDgLRpwBfUaG5MLO1lq2F233j/ZZl78Oi6VfXD9mZcxiduZspvabSkRYRLue1+11+4OjKk+DsKipcMl3v9V2vqApMHjyWu9h12cwzYZG0WHNjHBqEELVtmkqjApsE27CFThJj1dWU8aSnCW8t9NZ3Lk2+Jk7cC7zBjnBj0YCioiISEsUAkmn2bvnc/79ya94uWgTB12GLA9c2G8655z4c5KSsoJdXiPlZfls27mYLXs+I/vgV2SX7yHbU87+gMWoE3yLUQ+L7s2w5KEM7zuJYQNn0StlaBArDyHuati53Bf8vAUlu30LO5/ojPY59nRIzgx2lU1ye92s3b+WxTmLWZy7mJ3FOwEYmTKS2ZmzmZ01m2N7HdstgglrLTXemrqwKHCUkqfy6EKoBiOcKj2VR1xnhCvCuYVF1N13RRAZFum/H+4Kb3F/w331Hjfc12BbveP49oW7wus/Vlgl7ayl4OfUQacyoc8EBT8iIiLSZgqBpENZr5dPP3+S5zc+w2JPERY42ZXIRSMvYfqk7+EK63qL5RYV7iB75xKy965mS2E22RX72WIrKQ5YbyjVYxkWFsPwmH4M63UMw/pPZdigWcTF9wti5Z2kqqRuYeev34OqIoiIrVvYefg8iE0JdpVNKqspY8XuFSzOWczS3KUUVhUS7grn+H7HMztzNidnnky/uB7wPexAXuulylPVaCRSU18D27itmxpPDTXeGqo91dR4a/w3t7duX+2tXpsG+9xeN9WeajzW0+6vz2DaNWxqKtSKCIsg0hV5+OcJeKyFykNbWU0Zi3MW+y/nXu2tpk9MH+YOmsu8gfMU/IiIiMgRUwgkHaKkOI//fnw/C/csZ3uYJdlrOS/xWC6Ydhvp6ccFu7x2Z71e8g9sJHvXUrbsW0t20TayqwrYSg0VDRajHhYez7C4AQxLHcXwAcczOGsmkdGJQay+HZTur1vYedti38LOqQELO88K2YWd95XtY0nuEj7K+YiVe1ZS460hKSqJmekzmZU5ixMGnEB8ZHywy5QO4PF66oVLDUOjam91vX0Nw6aGYVRzx2ly32GcpyPCqriIOJKjkkmJTiE5Kple0b389wO31d4SIhI0wqmDlVaXsjjXCX4+zvu4XvBz6qBTGd97vIIfEREROWoKgaRdbcl+hxdWPcTrFblUuAxjveFcNPCbnHrCbURFJwW7vE7n9bjJ2/0Z2bkfk52/ni3FO8muKWS78fgXow6zliyvi2ERSQxPyGRY2hiGZZxAZvo0wiOig/wKWlCwtW59n5xPAQvJA2Gkb32fzONDcmFnay1fH/qaj3I+YnHOYjYWbAQgMyGT2ZmzmZU5i4l9JmqkhIQMj9fTctgUuK2lsMkXWlV7qimuLuZQ1SEOVfpuvvtVnqomawg34SRHJ7ccHEUn0yvKFxxF9Wr3NbK6oyaDn9g+zBs4j3mD5in4ERERkXanEEiOWk1NOR9+soAXtv2X1aaKSGv5ZmQ/Lp54PaNHfivY5YWkmppydu36mC15n7Cl4EuyS3PJrikmx2WxvnAo0lqG2DCGRaYwPHEQw/qMZ3jmDPr1mxicxaithd2BCztvcrb3H++7otcZ0GdUSC7sXOOp4bN9nznr++QsZk/ZHgyGcb3HMStzFnMy5zA4abBGOkiPZq2lwl3BoapDFFYWcrDyIIVVdV8bBkaHqg5RVFXU7PHiI+L9gZB/VJHvfmBwlBLlfI2PiO8R/w2WVpeyKGcR7+18jxV5K6j2VtM3tq9/jZ9xvccp+BEREZEOoxBIjtj+fRt4acX9vHToC/LDDOkeuLDPcZx74s9J7jU42OV1SRXlB9m2azHZu1eSffArtpTtJttTxr6AxajjvJZhRDIsOo3hyUMZ1nciw7JmkZp2TPsX5KmBHb6Fnb96C4rznIWdB57gC35Oh+TQW9QboKiqiOV5y1mcs5jlecsprSklOiyaaQOmMSdzDjMyZpAWkxbsMkW6NLfXTVFVkT8sOlR5qF5wdLDyIIWVhfVGHVV7q5s8VrgrvN5IokbBUUBglBKdQlJUEhGurjHaqKS6xFnjZ6cz4qfGW6PgR0RERIJCIZAcFuv1smr907yw4e985D6EBzjRxHPxiAs5cfL3CQuPDHaJ3VJxUQ5bdy5hy95VZB/aQnbFPrbYSgoD1htK8VqGmWiGxfZjWPJwhvefwrBBs4lPGHB4J6sqrVvYecu7UFkE4TF1Czsfc2rILuycW5LrH+2zet9q3NZNanQqszJnMStzFsf3P56Y8NBcm0ikJ6gdbdTqKKOA+8XVxc0eLyEyocnAqOG22uAoNjy200Yb+YOfHe/x8W4n+OkX18+5nPvAeQp+REREJCgUAkmblJXu5Y2Pf8ULeYvJDrMkei3nxg/jwmm3kpl5YrDL65Gs10vBwa/ZsnMx2fvWkl20lezKA2xpsBh1f4/1L0Y9PGUkwwYcx+CsmUTH9Ko7WGk+fP02bHrDt7BzFcSkOJdwH3GGs7BzZGynv8bWeK2XLw98yaKcRSzKWUR2YTYAQ5OGMjvLWd9nbNpY/aEl0oXVeGsoqiqqP8qospCDVb5RRg2mqB2qPESNt6bJY0W6IuuvXdRKcJQclXxY64MVVxf7g58Vu1f4g5/aNX7080hERESCTSGQtGjb9g95YeXv+W/5TspchpHeMC7OnMtpJ9xBTIiOBunpvB43e/auITtnOVvy15NdvJPs6oNsMx5qfP8C7rKWLK9hWEQS82vCOHnXOpyFnbNgRMDCzmGhtzhypbuST/d8yqKcRSzJXcKBigOEmTAm9Z3ErAxnxE9WYmhOURORjmetpdxdXm8qWmvBUUl1SbPHS4xMbHIx7MDA6GDlQd7f+T4f7/4Yt9dN/7j+zogfBT8iIiISYhQCSSPumkoWf/oHXtj6Cp9SSYS1nBrRm4vG/x/jRl0QnEWJ5ai5ayrZlbuCLbkryD7wJdmlOXziKeIYbxjPDLnICX76jgnJhZ0LKgpYmruUxTmL+WTPJ1S4K4iLiOPEAScyK3MWMzNmkhTV864+JyLto3a0UVtGGdXed3vd9Y7RP65/vRE/PWGRaxEREel6FAKJ34EDm3n54/t5seBz9oUZ+nssF6RN5twT7uyYRYcl6L773nepdFfyz9P/GexSGtlWtM2/vs/a/WuxWPrG9vVfzWtKvylEhmkNKhHpfNZaSmtK/YFRpCuSESkjFPyIiIhIyGspBAq9eSDS7qzXy9oNz/H8+id5312A2ximh8Xys+HfZubUmwiPiA52idJDuL1u1uWv8wc/O4p3ADAyZSTXj7+eWZmz9EeWiIQEYwwJkQkkRCaQSWawyxERERFpFwqBurHy8gO89fGvWJj7IZtdXhK8loviBnPBcT9m8KBZwS5PeojymnJW7F7BopxFLM1dSmFVIeGucI7vdzyXjryUWZmz6BfXL9hlioiIiIiIdHsKgbqhnTuX8cLKB3mtdBslLsNwXNzd/xTOOOlOYmPTgl2e9AD7yvaxJHcJi3IW8emeT6nx1pAYmcjMjJnMypzFiQNOJD4yPthlioiIiIiI9CgKgboJj7uapZ89zAtf/5sVVBBuLXMjUrlw7DVMGnu5FnqWDmWt5etDX7MoZxGLcxbzZcGXAGTEZ3DRiIuYnTmbiX0mHtZlmEVERERERKR96S+yLu7gwWxe+fiXvJi/mt1h0Mdj+X7qBL59wp2k9R4Z7PKkG6vx1LBq3yr/+j67y3ZjMIzrPY6bJ93M7MzZDEkaovV9REREREREQoRCoC7qiy9f5Pm1f+bdmv1UG8Nxrih+MvQ8Zh3/QyIiYoNdnnRTxdXFLM9dzuKcxSzPW05JTQnRYdFMGzCN/xv/f8zMmElajKYcioiIiIiIhCKFQF1IZcUh3lnxG17Y9S5fujzEei3nxWZx0ZRbGDp0brDLk24qtyTXP9pn9b7VuK2blOgU5g6ay6yMWUwbMI2Y8JhglykiIiIiIiKtUAjUBeTm/o9//++3vFKyhSKXYYg1/KzvyZx14p3EJ/QPdnnSzXitly8PfOms75O7mC2HtgAwNGkoV46+ktlZsxmbNhaX0TpTIiIiIiIiXYlCoBDl9bj5ePWfeGHz8yzzluAC5oQnc9GYq5g6/hot9CztqtJdycq9K1mUs4glOUvIr8jHZVxM6jOJW6fcyqzMWWQlZgW7TBERERERETkKCoFCTFHhDv7z8f0s3Pc/csIg1WO5rtcYvj39dvr1mxDs8qQbOVh5kKW5S1mcs5gVu1dQ4a4gNjyWk9JPYlbmLGakzyA5OjnYZYqIiIiIiEg7UQgUIjZu/g8vfP4ob1XupcplmOSK5AeDzuKUabcSERUX7PKkm9hetJ3FOYtZlLOItfvXYrH0je3L2UPPZnbmbKb2m0pkWGSwyxQREREREZEOoBAoiKqrSnh3xW95YcdbrHfVEOO1nBWTzkWTfsCxx5wZ7PKkG9lRvIOzXj2LHcU7ABiZMpLvjf8eszJnMTJlpC7jLiIiIiIi0gMoBAqCPbtX8+9Pfs0rxZs56DIMsnBbnxM5+4Q7SUzKDHZ50s2kxqRSWlPKqNRRXDLyEmZlzKJ/vBYUFxERERER6WmMtTYoJ54yZYpdtWpVUM4dDNbr5ZM1j/PCxmdZ4i0C4GRXEheNupRpE6/DFaY8TjqG2+um2lNNbERssEsRERERERGRDmaMWW2tndLUPiUPHay4KIf/rrifhXs+ZkcYpHgt1ySO4PzptzNgQJPfE5F2Fe4KJ9yl/9RFRERERER6ulb/MjTG/A04E9hvrR3TxH4D/BE4HSgHrrLWrmnvQruar7a8yQurH+bNijwqXIZxJoJfZZ3OqSfcRmRUQrDLExEREREREZEepi3DA54GHgWeaWb/N4HhvtvxwJ99X3ucmqoyPvjfg7yw/XXWmGqivJbTo/tx0cQbGTVifrDLExEREREREZEerNUQyFq71BgzqIUm5wDPWGdxof8ZY5KNMf2ttXvaq8hQt2/fel5c8StePrSBA2GGDC/8pO805p94J0nJg4JdnoiIiIiIiIhIu6wJlA7kBDzO9W3r9iGQ1+PmuqdmsCqyBC8wtiaKEWWz2GPO5tUd4by6Iw/IC3aZXU64y5CVGsvwPgkM6xPP8D7xZKbEEubSZcxFREREREREjlSnrhZrjLkOuA4gKyurM0/dIVxh4USbKE6sSMAbdjFlEaMpi4DEYBfWxVXVePg4+wCvrKkL0CLDXQxJi2N43wSG9Y5neF8nHBqYGkdkuCuI1YqIiIiIiIh0De0RAuUBmQGPM2hm+Iu19gngCXAuEd8O5w66R7+7ONgldFvFlTVk7y8le18p2fmlbNlXwue7DvH6ut3+NuEuw8DAUUN94xna27nFRIYFsXoRERERERGR0NIeIdB/gRuNMS/gLAhd1JPWA5KOkxgdwaSsXkzK6lVve3m1m235ZWTvL2XL/hK27Cvl6/0lvL9pHx6vky0aA5m9Yv3TyYb6vg7rE09CdEQwXo6IiIiIiIhIULXlEvHPA7OANGNMLvALIALAWvs48BbO5eGzcS4Rf3VHFSsCEBsZzpj0JMakJ9XbXuX2sLOgnC37nHAoe38p2ftLWb7lANUer79dv8Rohvd1AiEnJHJGEaXERXb2SxERERERERHpNMa5qFfnmzJlil21alVQzi09i9vjJedQBVv2lZCd70wv27K/lK35pZRXe/ztUuMiA4KheGf9oT7x9EmIwhgtSi0iIiKho7LGQ+6hCvIKK8g7VEFBaRVeCxaLtWCtxYJzv3ZbwGP8j63zvIB20MrzrW3TcS34ju3cp159zRy30bmdxzSsxYK3qeM28XxqX2O9czdzXJzjGuCUkX25Ze4xREdoiQER6VqMMauttVOa3KcQSHoqr9eyu6jCP2JoS8DaQ8WVbn+7hOjwumDIN2poWJ940pNjcOmKZSIiItIBSipryCusIPegL+gprCD3UDl5vuDnQGl1q8cwBgxgjPF9BYOzsfaxy7/P+Urgcxo9P3Cbc6zANv5ztnbchs8P3NbguNRr7ztuE6+j7ljNHLfBuaH+a2l43LIqN4u/ymdIWhwPnj+eyQPrL08gIhLKFAKJHAZrLfmlVf4RQ7VrD2XvL+NAaZW/XUxEGEP7xNULhob1iWdgSizhYbpimYiIiDTNWsuh8hryDvmCncIK/6ie3EMV5B0qr/cPUuBcKTU9OYaMXjGkJ/tuvWLI6BVLeq8YesdHEeYKDFP0D1VHa0X2AW59aT17iiq4dsYQfqRRQSLSRSgEEmknh8qqnSllASOHsveVsLuo0t8mMszF4LS4uqllvvWHBqfFERWuDw4iIiLdndfr/INSXbBTN4LHCXkqqKjx1HtOXGQY6b6ApzbY8Yc+vWJIi4vSCOQgKK1y86u3NvHcp7sY0juOBeePb3TREhGRUKMQSKSDlVa52bq/buRQ9v4StuwvZdfBcv/cepeBgalx/qlltYtSD+0TR2xke1yoT0RERDqD2+NlT1Glfz0eJ+wp9z/eXVhZ76IUAMmxEf4RPA1DnoxeMSTFRGj0TghbvuUAt73sjAr67swh3HKKRgWJSOhSCCQSJJU1Hudy9r4RQ7Uh0fYDZbi9df/tpSfHOCOGeteOHHKmmCXF6HL2IiIina2yxsPuwrpFlwNH8OQVVrC3uBKPt/5n6N4JUXVTtAJG8KQnO4FPfJT+waerK6ms4VdvbeL5lTkM6xPPgvPHMyEzOdhliYg0ohBIJMTUeLzsLCh3Rgz5F6R2rlhW5a77l8M+CVF1I4f6JvhDotS4SP1roYiIyBEqq3LXm6aV2yDkyS+pqtfeZaB/Ut06POn1Qp4YBiTHaFRID7Lk63xuf3k9+4or+b+Th/LDU4Zryr+IhBSFQCJdhMdryTtU4VuIOnB6WSmlVXULRCbHRvimlCUEXNI+nn6J0QqHRESkR7PWUlRRQ+6hinqXUM8rLPc/LiyvqfeciDBTL+BJT46tF/L0S4omQhd9kADFlTXc/8YmFq7K4Zi+zqigcRnJwS5LRARQCCTS5Vlr2Vtc2WBBaueqZYcCPsjGR4UztE/dtLLatYd6J0Thu0CrSEgyBiLCXIRp0VMRaUXtVTybmqZVO7KnrLr+ossxEWG+K2k1HM3jhD2947XoshyZRV/t546XvyC/tIrvnTyEm76hUUEiEnwKgUS6sYLSKrb4Rg1t9V/OvpR9xVWtP1kkxLh8YZBzM43uh4e5iAzYHh5miGzmfkSYi8hwF+Guxvcjwp3jhLsa32/qvC3dV3Al0r48XucfPvyjdw76RvPULsJcWEG1u/6iy4nR4aT7Ap3Ay6jXLsDcK1aLLkvHKaqo4ZdvbOTF1bkc2zeB310wnjHpScEuS0R6MIVAIj1QUUWN/0plhxoMexcJNR6vxe2xuL1eqj1eatzO/RqPl+oG92s8Xuex21IdcL/G46Um8L7HS42ntn3H/a4L1eBK2ZSEMq+F/JKqgPV46i6hvqeo8aLLafGRdYsu94r1X2Ur3TdlKzFaF1KQ4Fu0eT+3v7KeA6XVfH/WUG6cM5zIcE0jFJHOpxBIRER6NGutPxAKDIdauu/2OCFTo31uJ1QKDKu6WnAlEkqMgX6J0QEhT90VtWrDnphITa+RrqGovIZ73/iSV9bkMaJfAgvO16ggEel8CoFERES6mKMNroL0612kzVLjI8lIjqVfUrRGS0i388HGffzs1S84WFbN92cP4/uzh+l9LiKdpqUQKLyzixEREZHWGWOIDDf6o0FEpAs6ZVRfpgzqxb2vb+SPH27h/Y37WHD+eEYNSAx2aSLSw+mTpYiIiIiISDtLjo3kDxdO4InLJ7O/pIqzH13OHz/YQo3H2/qTRUQ6iEIgERERERGRDjJvdD/ev2UmZ4zrzx8++Jr5j33M5r3FwS5LRHoohUAiIiIiIiIdqFdcJH+8aCKPXzaZfcWVnPXIch79aAtujQoSkU6mEEhERERERKQTnDamH+/dcjKnjenPgve+5tw/reCrvSXBLktEehCFQCIiIiIiIp0kJS6SRy6eyJ8vncTuwgrOemQ5jy3K1qggEekUCoFEREREREQ62TfH9ue9W2Yyd3RfHnz3K7715xVs2adRQSLSsRQCiYiIiIiIBEFqfBSPXTKJxy6ZRM6hCs54eDl/XrxVo4JEpMMoBBIREREREQmiM8Y5o4K+MbIPv31nM996/BOy92tUkIi0P4VAIiIiIiIiQZYWH8WfLp3EIxdPZFdBGac/vJy/LNmKx2uDXZqIdCMKgUREREREREKAMYazxg/gvVtOZvaxvfn125s5//EVbM0vDXZpItJNKAQSEREREREJIb0Tonj8ssn88aIJbDtQxul/XMaTS7dpVJCIHDWFQCIiIiIiIiHGGMM5E9J575aZzDymN/e/tYkL/vIJ2zQqSESOgkIgERERERGRENUnIZonLp/MHy4cT/b+Ur75x2X8dZlGBYnIkVEIJCIiIiIiEsKMMZw7MYP3b5nJjOFp/PLNTVz0xCfsOFAW7NJEpItRCCQiIiIiItIF9EmM5skrpvC788fz1d4STvvjUv7+8Xa8GhUkIm2kEEhERERERKSLMMbwrckZvHfLyZwwNI17X9/IRU/+j50FGhUkIq1TCCQiIiIiItLF9EuK5qkrp/Dgt8exaU8xpz20jH+s2KFRQSLSIoVAIiIiIiIiXZAxhvOnZPLeLTM5bnAKv/jvl1zy1/+Rc7A82KWJSIhSCCQiIiIiItKF9U+K4emrp/LAt8bxZV4xpz60lH9+olFBItKYQiAREREREZEuzhjDBVMzefeWmUwe2Iu7XvuSy576VKOCRKQehUAiIiIiIiLdxIDkGJ655jh+c95Y1ucWcdpDS/nX/3ZirUYFiYhCIBERERERkW7FGMNFx2Xx7i0zmZjVi5//ZwOXP7WS3EMaFSTS0ykEEhERERER6YbSk2P453eO41fnjuXzXYc47aFlPL9yl0YFifRgCoFERERERES6KWMMlxyfxTs/nMm4jCTueOULrvjbSvIKK4JdmogEgUIgERERERGRbi4zJZZ/fed4/t/8MazeeYhT/7CUhZ9pVJBIT6MQSEREREREpAdwuQyXTxvIuz+cydj0JG57+Quu+vtn7CnSqCCRnkIhkIiIiIiISA+SmRLLs9cez33njGbl9oPM+8NS/r0qR6OCRHoAhUAiIiIiIiI9jMtluGL6IN754QxG9k/kpy+t55qnP2NvUWWwSxORDqQQSEREREREpIcamBrHC9+dxj1njeKTbQXM/cMSXlqdq1FBIt2UQiAREREREZEezOUyXHXiYN65eSYj+iXwkxfXce0/VrGvWKOCRLobhUAiIiIiIiLCoLQ4Fl43nbvOHMXHWw8w9/dLeGWNRgWJdCcKgURERERERARwRgV956TBvH3zTI7pm8CP/r2O7z6zmv0lGhUk0h0oBBIREREREZF6BqfFsfD/pvPzM0aybEs+c3+/lP98nqdRQSJdnEIgERERERERaSTMZbh2xhDeunkGQ3vH8cOFa/m/f64mv6Qq2KWJyBFSCCQiIiIiIiLNGto7nhe/dwI/O30Ei7/OZ94flvDfdbs1KkikC1IIJCIiIiIiIi0KcxmumzmUt26awcDUOG56/nOu/9caDpRqVJBIV6IQSERERERERNpkWJ94XvredG7/5gg++mo/8/6wlDfW7w52WSLSRgqBREREREREpM3Cw1x87+ShvPmDk8jsFcONz33O959dQ4FGBYmEvDaFQMaY04wxXxljso0xtzexf6Ax5kNjzHpjzGJjTEb7lyoiIiIiIiKhYnjfBF6+/gR+etqxvL9xH/P+sJS3vtgT7LJEpAWthkDGmDDgMeCbwCjgYmPMqAbNFgDPWGvHAfcBv27vQkVERERERCS0hIe5uGHWMN646SQGJMdww7NruPG5NRwsqw52aSLShLaMBDoOyLbWbrPWVgMvAOc0aDMK+Mh3f1ET+0VERERERKSbOqZvAq/ecAK3nnos7365l3l/WMI7G/YGuywRaaAtIVA6kBPwONe3LdA64Dzf/XOBBGNM6tGXJyIiIiIiIl1BeJiL788exus/OIl+SdF871+ruen5zzmkUUEiISO8nY7zE+BRY8xVwFIgD/A0bGSMuQ64DiArK6udTi0iIiIiIiKhYkS/RF694UQeX7yVhz/awoqtBdx5xggyesUGu7RuJS4ynN4JUaTERRLmMsEuR7oIY61tuYEx04F7rLWn+h7fAWCtbXLdH2NMPLDZWtvi4tBTpkyxq1atOqKiRUREREREJPRt2lPMj/+9jo17ioNdSrflMpAaH0Xv+Ch6JwTcGj5OiCIhKhxjFBh1d8aY1dbaKU3ta8tIoM+A4caYwTgjfC4CLmlwgjTgoLXWC9wB/O3oShYREREREZGubmT/RF678URW7zyE29PyAARpO4ulrMpNfkmVcyut8t/fsq+E/NIqapro76hwV/MhUcDjtPgooiPCgvDKpKO1GgJZa93GmBuBd4Ew4G/W2i+NMfcBq6y1/wVmAb82xlic6WDf78CaRUREREREpIuICHMxbYiWjO1M1lqKKmqaDIlqH+86WM7qnYcoaGbNpsTo8ICQKLrZ0EjT0bqWVqeDdRRNBxMREREREREJrhqPl4Nl1Y1CoqYel1a5Gz1f09FCz9FOBxMRERERERGRbigizEXfxGj6Jka32ra82s2BkmrySyv9AdH+BmHR1/tKOKDpaCFLIZCIiIiIiIiItCo2Mpys1HCyUlu+0pvX65uO1syIovySKnYWlLNq5yEOajpap1IIJCIiIiIiIiLtxuUy9IqLpFdcJMf0TWixbY3HS0GpbzpawAijwNDoi9xC8kuqKKv2ND5XG6aj9fF9jdd0NIVAIiIiIiIiIhIcEWEu+iVF0y8pGkhqsW1ZlZsDpS2vXfT1vhLyS6pwextPR4uOcDWeihYf7b8/dVAvkmMjO+iVhgaFQCIiIiIiIiIS8uKiwomLCmdgalyL7doyHW3HgXI+21F/OtorN5zApCyFQCIiIiIiIiIiXcKRTkcb2qflcKk7UAgkIiIiIiIiIj1S/elo3Z8r2AWIiIiIiIiIiEjHUwgkIiIiIiIiItIDKAQSEREREREREekBFAKJiIiIiIiIiPQACoFERERERERERHoAhUAiIiIiIiIiIj2AQiARERERERERkR5AIZCIiIiIiIiISA+gEEhEREREREREpAdQCCQiIiIiIiIi0gMYa21wTmxMPrAzKCdvf2nAgWAX0Y2oP9uf+rT9qU/bl/qz/alP25f6s/2pT9uX+rP9qU/bl/qz/alP21d36s+B1treTe0IWgjUnRhjVllrpwS7ju5C/dn+1KftT33avtSf7U992r7Un+1Pfdq+1J/tT33avtSf7U992r56Sn9qOpiIiIiIiIiISA+gEEhEREREREREpAdQCNQ+ngh2Ad2M+rP9qU/bn/q0fak/25/6tH2pP9uf+rR9qT/bn/q0fak/25/6tH31iP7UmkAiIiIiIiIiIj2ARgKJiIiIiIiIiPQA3TIEMsZkGmMWGWM2GmO+NMbc7NueYox53xizxfe1l2/7pcaY9caYL4wxK4wx4wOO9TdjzH5jzIZWznmaMeYrY0y2Meb2gO03+rZZY0xaC88fbIz51Nd2oTEm0rf9D8aYtb7b18aYwqPsnsMWYv35rG/7Bt+xIpp5fnP9OdAY86GvvsXGmIz26KPDFWJ9+pQxZp3v+C8ZY+Kbef47vnZfGmMeN8aEtVRzZwqx/nzaGLM94L/bCc08v8mfDcbxsG/femPMpKPsniPSzfo0yRjzesD79+qj7J7DFmL9aYwx9xvnd8omY8xNzTy/yZ+3eo822afLAt6fu40x/2nm+c31adDfo746umKfNvk7zBgTZZzf/9nG+Tww6Oh76PCEWH9+wxizxtefy40xw5p5fsj+rvfVEUp9OsfXpxuMMf8wxoQ38/zBpunPpFm+1/K5r8bT26OPDkcX7c8W/xYwxkw1xriNMd8+mr45UkHq0ybbtfW/W71HG53zaPuzud/1zdbW6ay13e4G9Acm+e4nAF8Do4AHgNt9228Hfuu7fwLQy3f/m8CnAceaCUwCNrRwvjBgKzAEiATWAaN8+yYCg4AdQFoLx/g3cJHv/uPA9U20+QHwtx7en6cDxnd7vql+aqk/gReBK3335wD/1HuUxIB2v689fxPHSPR9NcDLAf3bZM09uD+fBr7dhpqb/Nnge4+/7evnaYG1qU+PuE9/FlBnb+AgENmD+/Nq4BnA5Xvcp5ljNPnzVu/Rxn3aoN3LwBWH2adBf4924T5t8ncYcAPwuO/+RcDCntyfvnOPDOibp1vqT0Lwd30o9SnOP6TnAMf42t0HfKeZYzT3mfSJgPujgB3qzzb1Z7N/C/iO/xHwFm343NAd+rSldm3971bv0Xbvz+Z+1zdbW6f3a7BO3MlvnteAucBXQP+AN9RXTbTtBeQ12DaolR9o04F3Ax7fAdzRoM0OmgmBfG+QA0B4U8cLaLcCmKv+9G+/Bbj/cPoT+BLIDGhXHOz+DJU+9fXHn4HbWqk1AngduND3uNWae1J/0sbAIuC59X42AH8BLg547H8N6tMj7tM7gD/53uODgWx8AUgP7c+VwLDDrNf/81bv0cZ9GrAtEThEQDDRxj4NufdoV+tTGvwOA94Fpvvuh+N8LjA9tT995zw+YPuvWqk15H/XB7NPccLarQHbZwBvNfO+bO4z6V8C3q/TgRXqz5b7s4nj1ftbAPgh8H0O83NDV+7Tltq18Zx6j7Zjf7b2Hm2pts68dcvpYIGMM/x3IvAp0Ndau8e3ay/Qt4mnfAfnXzgPRzpOel0r17etrVKBQmutu7nnG2MG4nww/Ogwa2tXodKfvmF1lwPvNPH8lvpzHXCe7/65QIIxJvUw62tXodCnxpi/+843AnikhVrfBfYDJcBLvs1tqbnThEJ/Avf7hnv+wRgT1c7H7nTdoE8fBUYCu4EvgJuttd7DPEa7CYH+HApcaIxZZYx52xgzvJV6G/681XvU0dTrng98aK0tbqXehn0aUu9R6Fp92szvMP+xfZ8HinA+HwRFCPTntcBbxphcnPfeb1qoNeR/10PQ+/QAEG6MmeLb/m0gs4nnt/SZ9B7gMt/35C2cEf9B00X6M7Deej9HjTHpOJ/t/3yYNXWYTurTlrTlnHqPtt1h/Rxs5e/V9q7tsHTrEMg488JfBn7Y8MODdSI426D9bJxvyG2dVmTbXQS8ZK31BKuAEOvPPwFLrbXLDvN5PwFONsZ8DpwM5AE9vk+ttVcDA4BNwIUttDsVJ/mOwplO13B/o5o7U4j05x04f4hMBVLa+didrpv06anAWpz3+ATgUWNMYjvW12Yh0p9RQKW1dgrwJPC3Vtof6c/bThEifVrrYpyh361p2Kch8x6Frtenbf0dFiwh0p+3AKdbazOAv+NMnWtSqP+uh+D3qe8cFwF/MMasxAnMDvfz5MU40/IycKaP/NMYE5S/zbpofzb8OfoQzqiVoAbotYLdpw0d4X+3eo82o4392eTnp1DIHLptCORL3l4GnrXWvuLbvM8Y09+3vz/Ov3LUth8H/BU4x1pb0MqxM03dYoXfwwkSAtPqDN+2lo7xru/5fwUKgGRTtwBaU8+/iLZ9sOwQodSfxphf4Awb/VHAtjb1p7V2t7X2PGvtROBO37bCw+uN9hFKfQrgCxhfAL5ljAkLeP59DdpV4gzFPKe1mjtTqPSntXaPdVThfNA+zneMwPdoSw7750lH6UZ9ejXwiu8Y2cB2nFCpU4VKf+L8K1/t+V8FxvmO0ag/m/p528qxO1UI9SnGWYz8OODNgG1t7dOQeI/66utyfQr1f4f5NvmP7fs8kITz+aBThUJ/GmN6A+OttZ/6ti8ETuiKv+t95w96nwJYaz+x1s6w1h4HLMVZq+RwPuN/B2ctFqy1nwDRQLMXkekoXaw/a4/b1M/RKcALxpgdOCOJ/mSMmX94vdE+OrlPW9LkOfUerXfs9u7P2uM29R49rNo6lA3yvL6OuOHMbXwGeKjB9gepv5jTA777WTjz709o5niDaHl+aziwDWe6Vu0iZ6MbtNlBywtDv0j9BbluCNg3wvf8oMxlD6X+xBnOvAKIaaXmJvsT5wdX7WKo9wP39eQ+9dUxLKCmBcCCJp4fT90c2HCcD5A3tlRzT+xP377+ATU9BPymldp3UH/9mjOov+juyp78Hm2nPv0zcI/vfl+cDzfN/jzuAf35G+Aa3/1ZwGfNHKPJn7d6jzb9ux74HvCPVmpurk+D/h7tin1KC7/DcNYFCVwY+t89tT+pWxOpdtHd7wAvN/H8kP5dH0p96tvXx/c1CvgQmNPMMZr7TPo2cJXvfu100E79rN9F+7PVvwUI4ppAnd2nLbVr63+3eo+2e38297u+xdo6tV+DXUAHvVlOwhmetR5nePVanCFsqb4fKluAD4AUX/u/4iw6WNt2VcCxngf2ADU4/3ra0kr1X+OseH9nwPabfM9z+/7D+Wszzx+Cs1hntu8/xKiAfffQyh89Pag/3b5ttce++3D6E+dfBrb4jv3XwH7uiX2KMxrwY5w1KDYAz9LE4ps4f5R85qt3A86aC7ULyDVZc0/sT9/2jwL6819AfDPPb/JnA84vu8d8x/0CmNKT36Pt1KcDgPcCjnFZD+/PZJyRFV8An+CMEGjq+U3+vNV7tHGf+vYtBk5rpebm+jTo79Gu2Ke08DsM51+sX8T5HLASGNKT+xNnrZQvcP7oXtxUfxDiv+tDsE8fxJmC+BXOFJXmam7uM+ko3/t3na+2eerPNvVnq38LENwQKBh92mS75s6p92iH92dzv+ubra2zb8ZXkIiIiIiIiIiIdGPddk0gERERERERERGpoxBIRERERERERKQHUAgkIiIiIiIiItIDKAQSEREREREREekBFAKJiIiIiIiIiPQACoFERERERERERHoAhUAiIiIiIiIiIj2AQiARERERERERkR7g/wOLdqwkFoLChgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "date_list = df.DATE\n",
    "plt.figure(figsize=(20,5))\n",
    "plt.plot(date_list, reward_list, label = \"Reward by ChatGPT\")\n",
    "plt.plot(date_list, reward_yourself_list, label= \"Reward with ChatGPT\")\n",
    "plt.plot(date_list, reward_hold_list, label= \"Buy and hold\")\n",
    "plt.title(\"Maotai ChatGPT Trading Results\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "finrl",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.12"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "afd6dc03c9be451573fc2885de79a969af6a24a159f11a3ead741ab7a9ff405f"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
